﻿using System.Web;
using System.Web.UI;

namespace OpenFlashChartLib.Web
{
    public class OpenFlashChartControlHandler : IHttpHandler
    {
        /// <summary>
        /// You will need to configure this handler in the web.config file of your 
        /// web and register it with IIS before being able to use it. For more information
        /// see the following link: http://go.microsoft.com/?linkid=8101007
        /// </summary>

        #region IHttpHandler Members

        public bool IsReusable
        {
            // Return false in case your Managed Handler cannot be reused for another request.
            // Usually this would be false in case you have some state information preserved per request.
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            string uniqControlID = context.Request.Params[OpenFlashSettings.HandlerGetControlParam];

            if (uniqControlID == null)
                return;

            var openFlashChart = (Graph) context.Cache[uniqControlID];

            if (openFlashChart == null)
                return;

            using (var writer = new HtmlTextWriter(context.Response.Output))
            {
                writer.Write(openFlashChart.ToString());
            }
        }

        #endregion
    }
}